#pragma once
#include "SFML\Window.hpp"
#include <map>
#include "IInputProvider.h"

class InputManager : 
	public IInputProvider
{
public:
	InputManager();

	void Update();	
	bool KeyPressed(KeyActions action);
	bool KeyDown(KeyActions action);

private:
	const struct _ActionStates
	{
		sf::Keyboard::Key key;
		bool prevState;
		bool currentState;
		bool pressedState;
	};

	std::map<KeyActions, _ActionStates> _registeredKeys;

};